using System;
using System.Collections.Generic;
using Jayway.Practices.CommonServiceManager;

namespace Your.CommonServiceManagerAdapter
{
	/// <summary>
	/// <see cref="IServiceLocator"/>
	/// </summary>
	public class YourServiceLocator : IServiceLocator
	{
		/// <summary>
		/// 
		/// </summary>
		/// <param name="expectedContainer"></param>
		public YourServiceLocator(YourContainer expectedContainer)
		{
			throw new NotImplementedException("Replace this with your adapter that implements Common Service Manager!");
		}

		/// <summary>
		/// 
		/// </summary>
		/// <param name="serviceType"></param>
		/// <returns></returns>
		public object GetService(Type serviceType)
		{
			throw new NotImplementedException("Replace this with your adapter that implements Common Service Manager!");
		}

		/// <summary>
		/// 
		/// </summary>
		/// <typeparam name="TService"></typeparam>
		/// <returns></returns>
		public IEnumerable<TService> GetAllInstances<TService>()
		{
			throw new NotImplementedException("Replace this with your adapter that implements Common Service Manager!");
		}

		/// <summary>
		/// 
		/// </summary>
		/// <param name="serviceType"></param>
		/// <param name="implementationKey"></param>
		/// <returns></returns>
		public object GetInstance(Type serviceType, string implementationKey = null)
		{
			throw new NotImplementedException("Replace this with your adapter that implements Common Service Manager!");
		}

		/// <summary>
		/// 
		/// </summary>
		/// <typeparam name="TService"></typeparam>
		/// <param name="implementationKey"></param>
		/// <returns></returns>
		public TService GetInstance<TService>(string implementationKey = null)
		{
			throw new NotImplementedException("Replace this with your adapter that implements Common Service Manager!");
		}

		/// <summary>
		/// 
		/// </summary>
		/// <param name="serviceType"></param>
		/// <returns></returns>
		public IEnumerable<object> GetAllInstances(Type serviceType)
		{
			throw new NotImplementedException("Replace this with your adapter that implements Common Service Manager!");
		}
	}
}